Showing posts with label Pemrograman | Java NetBean. Show all posts
Showing posts with label Pemrograman | Java NetBean. Show all posts

Thursday, November 16, 2017

Java Kriptografi 13

import java.util.Scanner;
public class crypto {
       private static char konversi(char []data, int j) {
           char ascii = ' ';
           int nil;
           int ROT13=13;
           int karakter=data[j] ;  /*konversi karakter kedalam bentuk desimal */
           if (karakter >='a' && karakter <='z' || karakter >='A' && karakter <='Z') {
                  if (karakter >='a' && karakter <='z') {
                     if ( (nil =karakter + ROT13) <= 'z' ) { /*Jika Karakter plus 13 kurang dari z*/
                           ascii = (char) nil;  /*Chasting kedalam bentuk Karakter*/
                     }
                     else {
                          nil =karakter - ROT13; /*Jika Karakter lebih dari z maka dikurangi 13*/
                           ascii = (char) nil; /*Chasting kedalam bentuk Karakter*/
                     }
           }
           else if (karakter >='A' && karakter <='Z')  {
                  if ( (nil =karakter + ROT13) <= 'Z' ) { /*Jika Karakter plus 13 kurang dari z*/
                          ascii = (char) nil;  /*Chasting kedalam bentuk Karakter*/
                  }
                  else {
                        nil =karakter - ROT13; /*Jika Karakter lebih dari z maka dikurangi 13*/
                        ascii = (char) nil; /*Chasting kedalam bentuk Karakter*/
                  }
             }

          }
       return ascii;
      }

public static void main(String[] args) {
     StringBuffer Enkripsi = new StringBuffer();
     StringBuffer Dekripsi = new StringBuffer();
     Scanner in = new Scanner(System.in);

     System.out.print("Input Kata : ");
     String kata = in.nextLine();

     for (int j=0; j <kata.length(); j++) {
           /*Menambahkan Setiap Karakter Yang Telah Rotasi 13*/
           Enkripsi.append(crypto.konversi(kata.toCharArray(), j));
     }
     System.out.println("Hasil Enkripsi : "+Enkripsi);

     /*Mengkopi Nilai Dari StringBuffer Enkripsi*/
     String balik = String.valueOf(Enkripsi);

     for (int j=0; j< kata.length(); j++) {
           /*Menambahkan Setiap Karakter Yang Telah DiBalik*/
           Dekripsi.append(crypto.konversi(balik.toCharArray(), j));
     }

     System.out.println("Hasil DeKripsi : "+Dekripsi);/**/
     }
 }

Kriptografi ROT13

Salah satu contoh dari “substitution cipher” adalah Rot13. Metode rot13 merupakan metode enkripsi yang mengubah suatu huruf menjadi huruf yang letaknya 13 posisi dari huruf semula. Misalnya ‘A’ akan berubah menjadi ‘N’ , ‘B’ berubah menjadi ‘O’, dst .Rumusnya seperti dibawah ini :

[untita.bmp]

C = ROT13(input)
Jika kita ingin merubahnya ke huruf semula, yang harus dilakukan adalah melakukan proses ROT13 sebanyak 2x dari huruf awalnya.
M = ROT13(ROT13(input))
Misal : Plaintext : FENDI
Ciphertextnya : SRAQV